package news

import "time"

type NewsCreateConfig struct {
	Id                           int       `json:"id" gorm:"type:int(11) auto_increment; NOT NULL; primary_key; COMMENT:'自增主键'"`
	Title                        string    `json:"title" gorm:"type:varchar(255); COMMENT:'配置名称'"`
	BasisCreateType              string    `json:"basis_create_type" gorm:"type:char(1); NOT NULL; COMMENT:'基础创建类型（1=关键词生成，2=标题生成，3=描述生成）'"`
	BasisKeywords                string    `json:"basis_keywords" gorm:"type:text; COMMENT:'基础关键词列表（每行一个关键词，多关键词用逗号分隔）'"`
	BasisTitle                   string    `json:"basis_title" gorm:"type:text; COMMENT:'基础标题列表（每行一个标题）'"`
	BasisDescription             string    `json:"basis_description" gorm:"type:text; COMMENT:'公司或产品服务描述'"`
	BasisContainKeywords         string    `json:"basis_contain_keywords" gorm:"type:text; COMMENT:'强制包含的关键词列表（每行一个）'"`
	CreateType                   string    `json:"create_type" gorm:"type:text; COMMENT:'选中的创作类型组合（JSON 数组存储类型 ID）'"`
	CreateTypeProductName        string    `json:"create_type_product_name" gorm:"type:varchar(255); COMMENT:'产品名称（TOP 排行类型时必填）'"`
	CreateTypeProductDescription string    `json:"create_type_product_description" gorm:"type:text; COMMENT:'产品介绍（TOP 排行类型时必填）'"`
	CreateTypeProductRank        string    `json:"create_type_product_rank" gorm:"type:text; COMMENT:'排名展现规则（TOP 排行类型时必填）'"`
	CreateTypeCompetitor         string    `json:"create_type_competitor" gorm:"type:text; COMMENT:'竞品列表（多行，每行一个）'"`
	CreateTypeRatioTop           int       `json:"create_type_ratio_top" gorm:"type:tinyint(3) unsigned; COMMENT:'TOP 排行创作占比（0 - 100）'"`
	CreateTypeRatioWhat          int       `json:"create_type_ratio_what" gorm:"type:tinyint(3) unsigned; COMMENT:'What 类型创作占比（0 - 100）'"`
	CreateTypeRatioHow           int       `json:"create_type_ratio_how" gorm:"type:tinyint(3) unsigned; COMMENT:'How 类型创作占比（0 - 100）'"`
	ReplaceContent               string    `json:"replace_content" gorm:"type:text; COMMENT:'全文替换规则（JSON 数组，格式：[{"keyword":"旧词","replace":"新词"}]）'"`
	ContentFormat                string    `json:"content_format" gorm:"type:text; COMMENT:'内容格式组合（JSON 数组存储格式 ID）'"`
	ArticleStructure             string    `json:"article_structure" gorm:"type:text; COMMENT:'文章结构组合（JSON 数组存储结构 ID）'"`
	ArticleStructureSize         string    `json:"article_structure_size" gorm:"type:char(1); COMMENT:'文章大小（1=小，2=中，3=大）'"`
	ArticleStructureTitle        string    `json:"article_structure_title" gorm:"type:text; COMMENT:'自定义标题列表（多行，每行一个）'"`
	CreatedAt                    time.Time `json:"created_at" gorm:"type:timestamp; CURRENT_TIMESTAMP; COMMENT:'记录创建时间'"`
	UpdatedAt                    time.Time `json:"updated_at" gorm:"type:timestamp; CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; COMMENT:'记录更新时间'"`
}

func (NewsCreateConfig) TableName() string {
	return "news_create_config"
}
